<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>peach.ga.crossover.Crossover</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="peach-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a href="http://code.google.com/p/peach">Peach - Computational Intelligence for Python</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="peach-module.html">Package&nbsp;peach</a> ::
        <a href="peach.ga-module.html">Package&nbsp;ga</a> ::
        <a href="peach.ga.crossover-module.html">Module&nbsp;crossover</a> ::
        Class&nbsp;Crossover
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="peach.ga.crossover.Crossover-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class Crossover</h1><p class="nomargin-top"><span class="codelink"><a href="peach.ga.crossover-pysrc.html#Crossover">source&nbsp;code</a></span></p>
<center>
<center>  <map id="uml_class_diagram_for_peach_ga_4" name="uml_class_diagram_for_peach_ga_4">
<area shape="rect" id="node1" href="peach.ga.crossover.Uniform-class.html" title="A uniform crossover operator." alt="" coords="5,70,88,109"/>
<area shape="rect" id="node2" href="peach.ga.crossover.OnePoint-class.html" title="A one&#45;point crossover operator." alt="" coords="117,70,208,109"/>
<area shape="rect" id="node3" href="peach.ga.crossover.Crossover-class.html" title="Base class for crossover operators." alt="" coords="119,6,204,50"/>
<area shape="rect" id="node4" href="peach.ga.crossover.TwoPoint-class.html" title="A two&#45;point crossover operator." alt="" coords="237,70,328,109"/>
</map>
  <img src="uml_class_diagram_for_peach_ga_4.gif" alt='' usemap="#uml_class_diagram_for_peach_ga_4" ismap="ismap" class="graph-without-title" />
</center>
</center>
<hr />
<p>Base class for crossover operators.</p>
<p>This class should be subclassed if you want to create your own crossover
operator. The base class doesn't do much, it is only a prototype. As is done
with all the base classes within this library, use the <tt class="rst-docutils literal">__init__</tt> method
to configure your crossover behaviour -- if needed -- and the <tt class="rst-docutils literal">__call__</tt>
method to operate over a population.</p>
<p>A class derived from this one should implement at least 2 methods, defined
below:</p>
<blockquote>
<dl class="rst-docutils">
<dt>__init__(self, <a href="#id1"><span class="rst-problematic" id="rst-id2">*</span></a>cnf, <a href="#id3"><span class="rst-problematic" id="rst-id4">**</span></a>kw)</dt>
<dd><p class="rst-first">Initializes the object. There are no mandatory arguments, but any
parameters can be used here to configure the operator. For example, a
class can define a crossover rate -- this should be defined here:</p>
<pre class="rst-literal-block">
__init__(self, rate=0.75)
</pre>
<p class="rst-last">A default value should always be offered, if possible.</p>
</dd>
<dt>__call__(self, population)</dt>
<dd>The <tt class="rst-docutils literal">__call__</tt> implementation should receive a population and operate
over it. Please, consult the <tt class="rst-docutils literal">ga</tt> module to see more information on
populations. It should return the processed population. No recomendation
on the internals of the method is made. That being said, in general the
crossover operators pairs chromosomes and swap bits among them (but
there is nothing to say that you can't do it differently).</dd>
</dl>
</blockquote>
<p>Please, note that the GA implementations relies on this behaviour: it will
pass a population to your <tt class="rst-docutils literal">__call__</tt> method and expects to received the
result back.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__format__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__init__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>,
      <code>__sizeof__</code>,
      <code>__str__</code>,
      <code>__subclasshook__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="peach-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a href="http://code.google.com/p/peach">Peach - Computational Intelligence for Python</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Sun Jul 31 16:59:36 2011
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
